package com.zzgc.modules.service;

import com.zzgc.common.entity.StudentArchives;
import com.zzgc.modules.param.StudentArchivesParam;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * 学生档案模板(StudentArchives)表服务接口
 *
 * @author makejava
 * @since 2023-01-31 11:18:14
 */
public interface StudentArchivesService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    StudentArchives queryById(Long id, String tableName);

    /**
     * 通过省级ID， 学年， 筛查次数，查询单条数据
     *
     * @param uniqueId 主键
     * @param year 主键
     * @param number 主键
     * @return 实例对象
     */
    StudentArchives queryByUniqueIdYearNumber(Long uniqueId, String year, Integer number, String tableName);

    /**
     * 分页查询
     *
     * @param studentArchives 筛选条件
     * @param       分页对象
     * @return 查询结果
     */
    List<StudentArchives> queryByPage(StudentArchives studentArchives);
    /**
     * 分页查询, 查询学生档案
     *
     * @param archivesParam 筛选条件
     * @return 查询结果
     */
    List<StudentArchivesParam> queryAllByLimitArchives(StudentArchivesParam archivesParam);
     /**
     * 分页查询, 查询学生档案, 可以根据县区查询
     *
     * @param archivesParam 筛选条件
     * @return 查询结果
     */
    List<StudentArchivesParam> queryAllByArchives(StudentArchivesParam archivesParam);

    /**
     * 分页查询, 查询学生档案, 可以根据县区查询
     *
     * @param studentArchives 筛选条件
     * @return 查询结果
     */
    Long count(StudentArchives studentArchives);

    /**
     * 新增数据
     *
     * @param studentArchives 实例对象
     * @return 实例对象
     */
    StudentArchives insert(StudentArchives studentArchives);

    /**
     * 修改数据
     *
     * @param studentArchives 实例对象
     * @return 实例对象
     */
    StudentArchives update(StudentArchives studentArchives);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

}
